SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[pamigrarescuelas]

AS
alter table tb_organizaciones disable trigger ALL
declare escuelas cursor for 
select cue,anexo,nombre,localidad,departamento,domicilio,responsable,teléfono,tipo,controlado 
from importardatos.dbo.tb_escuelas order by cue asc for update of controlado
/*VARIABLES GENERALES*/
declare @idorganizacion int
declare @idlocalidad int
/*VARIABLES CURSOR ESCUELAS*/
declare @cue int
declare @anexo int
declare @nombre varchar(255)
declare @localidad varchar(255)
declare @departamento varchar(255)
declare @domicilio varchar(255)
declare @responsable varchar(255)
declare @telefono int
declare @tipo varchar(255)
declare @controlado varchar(10)
set @controlado='no'

/*VARIABLES CURSOR ESCUELAS REPETIDAS*/
declare @rcue int
declare @ranexo int
declare @rnombre varchar(255)
declare @rlocalidad varchar(255)
declare @rdepartamento varchar(255)
declare @rdomicilio varchar(255)
declare @rresponsable varchar(255)
declare @rtelefono int
declare @rtipo varchar(255)
declare @rcontrolado varchar(10)
set @rcontrolado='no'
declare @insertarrepetidas varchar(10)
set @insertarrepetidas='no'
/*VARIABLES CURSOR ESCUELAS ANEXOS*/
declare @acue int
declare @aanexo int
declare @anombre varchar(255)
declare @alocalidad varchar(255)
declare @adepartamento varchar(255)
declare @adomicilio varchar(255)
declare @aresponsable varchar(255)
declare @atelefono int
declare @atipo varchar(255)
declare @acontrolado varchar(10)
set @acontrolado='no'

open escuelas
fetch next from escuelas
into @cue, @anexo,@nombre,@localidad,@departamento,@domicilio,@responsable,@telefono,@tipo,@controlado

while @@fetch_status = 0
begin
	if(@controlado<>'si')
		begin
			print 'IF SI entonces no esta Controlado'
			if(@anexo=0)
				begin
					print 'IF SI entonces no es anexo'
					print @cue
					/* controla las escuelas repetidas*/
					if((select count(esc.cue) from importardatos.dbo.tb_escuelas esc where esc.cue=@cue and esc.anexo=0)>1)
						begin
						/*declaramos y cargamos un cursor con las escuelas repetidas*/
						declare repetidas cursor for 
						select cue,anexo,nombre,localidad,departamento,domicilio,responsable,teléfono,tipo,controlado 
						from importardatos.dbo.tb_escuelas where cue=@cue and anexo=0 order by cue asc for update of controlado
						set @insertarrepetidas='si'
						end
					/*verificamos si es que existe el cue en el sagenet*/
					if (not exists(select org.cue from tb_organizaciones org where org.cue=@cue))
						begin
							print 'IF SI no existe cue entonces Insert Organizacion'
							/*set identity_insert [SageNet].[dbo].tb_organizaciones on*/
							insert into tb_organizaciones(nombre,cuise,cue,tipo,sistema,domicilio,localidad
											,responsable,tienesuborganizacion,esprivada,baja,fehaalta)
							values(@nombre,@cue,@cue,case when upper(rtrim(@tipo)) = 'INICIAL' then 53
														  when upper(rtrim(@tipo)) = 'PRIMARIA' then 51
														  when upper(rtrim(@tipo)) = 'SECUNDARIA' then 49
														  when upper(rtrim(@tipo)) = 'SNU' then 54
														  when upper(rtrim(@tipo)) = 'ADULTOS' then 26
														  when upper(rtrim(@tipo)) = 'ESPECIAL' then 4
														  when upper(rtrim(@tipo)) = 'ARTISTICA' then 55
													 end,1,@domicilio,2,@responsable,'S','N','N',getdate())
							/*set identity_insert [SageNet].[dbo].tb_organizaciones off*/
							/*IDORGANIZACION PARA CARGAR LOS ANEXOS E IDLOCALIDAD TAMBIEN */
							set @idorganizacion=@@identity
							set @idlocalidad=2									
						end
					else
						begin
							print 'IF NO no existe cue entonces UPDate organizacion'
							update tb_organizaciones set nombre=@nombre where cue=@cue
							/*IDORGANIZACION PARA CARGAR LOS ANEXOS E IDLOCALIDAD TAMBIEN */
							set @idorganizacion = (select TOP 1 org.idorganizaciones from tb_organizaciones org where org.cue=@cue)
							set @idlocalidad=(select TOP 1 org.localidad from tb_organizaciones org where org.cue=@cue)							
						end
					/*verificamos si la escuela tiene anexos*/
			    	if(exists(select * from importardatos.dbo.tb_escuelas esc where esc.cue=@cue and esc.anexo<>0))
						begin
						print 'IF NO existe Anexos entonces Insert como Suborganizacion'
						/*declaramos y cargamos el cursor anexos*/
						declare anexos cursor for 
						select cue,anexo,nombre,localidad,departamento,domicilio,responsable,teléfono,tipo,controlado 
						from importardatos.dbo.tb_escuelas where cue=@cue order by cue asc for update of controlado
						/*recorremos el cursor anexos y los cargamos en la tabla suborganizaciones*/
						open anexos
						fetch next from anexos
						into @acue, @aanexo,@anombre,@alocalidad,@adepartamento,@adomicilio,@aresponsable,@atelefono,@atipo,@acontrolado
							while @@fetch_status = 0
							begin
								/*set identity_insert [SageNet].[dbo].tb_suborganizaciones on*/
								insert into tb_suborganizaciones(descripcion,org,espropia,grilla,fechaalta,baja,
								domicilio,localidad,nivel,modalidad,zona,cue,telefono,jornada,
								cantturnosfunc,categoria,esprivada,tipo,mnemo,organizacionliquidadora)
								values(@anombre,@idorganizacion,'S',22,getdate(),'N',@adomicilio,
										@idlocalidad,case when upper(rtrim(@atipo)) = 'INICIAL' then 2
														  when upper(rtrim(@atipo)) = 'PRIMARIA' then 3
														  when upper(rtrim(@atipo)) = 'SECUNDARIA' then 4
														  when upper(rtrim(@atipo)) = 'SNU' then 5
														  when upper(rtrim(@atipo)) = 'ADULTOS' then 19
														  when upper(rtrim(@atipo)) = 'ESPECIAL' then 20
														  when upper(rtrim(@atipo)) = 'ARTISTICA' then 21
													 end,437,7,@acue,@atelefono,1,0,5,'N',1,'Imp',null)
								/*set identity_insert [SageNet].[dbo].tb_suborganizaciones off*/
								/*MARCAMOS EL REGISTRO COMO CONTROLADO EN LA BASE DE DATOS DE ESCUELAS*/
								update importardatos.dbo.tb_escuelas Set controlado='si' where current of anexos 
								/*SIGUIENTE REGISTRO ANEXO*/
								fetch next from anexos
								into @acue, @aanexo,@anombre,@alocalidad,@adepartamento,@adomicilio,@aresponsable,@atelefono,@atipo,@acontrolado  

							end /*FIN WHILE CURSOR ANEXOS*/

							close anexos --Cierra el cursor.
							deallocate anexos --Lo libera de la memoria y lo destruye.
						end /* FIN IF ESCUELA TIENE ANEXOS */
						/*INSERTAR LOS REPETIDOS COMO ANEXOS*/
						if(@insertarrepetidas='si')
						begin
						print 'IF SI insertar repetidas entonces Insert como Suborganizacion'
						open repetidas
						fetch next from repetidas
						into @rcue, @ranexo,@rnombre,@rlocalidad,@rdepartamento,@rdomicilio,@rresponsable,@rtelefono,@rtipo,@rcontrolado
							while @@fetch_status = 0
							begin
							print 'while cursor insertar repetidos'
							/*set identity_insert [SageNet].[dbo].tb_suborganizaciones on*/
								insert into tb_suborganizaciones(descripcion,org,espropia,grilla,fechaalta,baja,
								domicilio,localidad,nivel,modalidad,zona,cue,telefono,jornada,
								cantturnosfunc,categoria,esprivada,tipo,mnemo,organizacionliquidadora)
								values(@rnombre,@idorganizacion,'S',22,getdate(),'N',@rdomicilio,
										@idlocalidad,case when upper(rtrim(@rtipo)) = 'INICIAL' then 2
														  when upper(rtrim(@rtipo)) = 'PRIMARIA' then 3
														  when upper(rtrim(@rtipo)) = 'SECUNDARIA' then 4
														  when upper(rtrim(@rtipo)) = 'SNU' then 5
														  when upper(rtrim(@rtipo)) = 'ADULTOS' then 19
														  when upper(rtrim(@rtipo)) = 'ESPECIAL' then 20
														  when upper(rtrim(@rtipo)) = 'ARTISTICA' then 21
													 end,437,7,@rcue,@rtelefono,1,0,5,'N',1,'Imp',null)
								/*set identity_insert [SageNet].[dbo].tb_suborganizaciones off*/
							/*MARCAMOS EL REGISTRO COMO CONTROLADO EN LA BASE DE DATOS DE ESCUELAS*/
							update importardatos.dbo.tb_escuelas Set controlado='si' where current of repetidas    
							fetch next from repetidas into @rcue, @ranexo,@rnombre,@rlocalidad,@rdepartamento,@rdomicilio,@rresponsable,@rtelefono,@rtipo,@rcontrolado
							
							end /*FIN WHILE CURSOR REPETIDAS*/

							close repetidas --Cierra el cursor.
							deallocate repetidas --Lo libera de la memoria y lo destruye.
							set @insertarrepetidas='no'	
						end /*FIN INSERTAR REPETIDAS*/
						update importardatos.dbo.tb_escuelas Set controlado='si' where current of escuelas 
			end /*fin IF ANEXO*/
		
		end	/*fin IF controlado*/		
fetch next from escuelas
into @cue, @anexo,@nombre,@localidad,@departamento,@domicilio,@responsable,@telefono,@tipo,@controlado
end /*fin WHILE CURSOR ESCUELAS*/

close escuelas --Cierra el cursor.
deallocate escuelas --Lo libera de la memoria y lo destruye.
alter table tb_organizaciones enable trigger All

/*FIN FIN FIN FIN FIN FIN FIN FIN */

GO
